Session Initiation Protocol (SIP) is an application level protocol defined by Internet Engineering Task Force (IETF) for creating, modifying and terminating multimedia sessions. SIP is widely used for establishing and terminating voice, video, and messaging sessions over IP (Internet Protocol) and to exchange presence information.
Presence information is a status indicator that conveys ability and willingness of a potential communication partner (on the other end). A user's client provides presence information (presence state) to a presence service. The presence service stores the user's presence information in what constitutes the user's personal availability record sometimes referred to as a presentity. Under certain conditions the user's presentity is made available for distribution to other users, who are sometimes referred to as watchers, to convey the user's availability for communication. In this way the presence information is the service enabler for instance messaging (IM), voice or video sessions. The growth in popularity of instant messaging and voice over IP from consumers is largely attributed to the availability of the presence information of other users such as in a buddy list.
There are currently multiple services offering presence, IM, and/or voice/video communications services. For example, the IP (Internet Protocol) Multimedia Subsystem (IMS) is an architectural framework for delivering Internet Protocol (IP) multimedia services. IMS was originally designed by the wireless standards body 3rd Generation Partnership Project (3GPP) and later on maintained and updated by 3GPP, 3GPP2 and TISPAN (Telecommunications and Internet converged Services and Protocols for Advanced Networking) as a collaborative effort. IMS defines an architecture and procedures for implementing the voice, video, IM and presence services based on Session Initiation Protocol. IMS is considered one of the next generation architectures for providing services over IP among the Telcom industry. There are also numerous web based services such as, for example, Google Talk (gtalk), skype, and yahoo instant messaging offering presence enabled instant messaging, voice and/or video services. Moreover, there are product offerings such as, for example, Microsoft Lync and Cisco Jabber, which are popular in the Enterprise market. Microsoft (MS) Lync offers integrated instant messaging, voice, video services from a system hosted in the Enterprise as well as Lync online which is a cloud based communication service. In such systems in order to get a communication service a user needs an Identity which is recognized in the service domain. For example, a skype ID is needed for using skype service, an IMS Public user Identity is needed for using IMS service, and an Microsoft Lync ID is needed for using Lync service.
These communication services are managed as Autonomous systems which recognize the user by the Identity assigned to the user by the system. However, each system does not know the Identities of the same user in other Autonomous systems. As a result, presence aggregation logic does not take the activity on other user identities of the same user into consideration. This leads to inaccurate representation of the presence state of the user. For example, Microsoft Lync aggregates the presence of the user based on the activity of the user on all the devices, the user logged in with a Microsoft Lync ID. But, Microsoft Lync presence does not take into account the user activity in other domains or autonomous systems such as gtalk or IMS phone. Moreover, the known technology also suffers from the inability of contact information contained for a user in various Autonomous systems and/or disparate domains to be synchronized across the various Autonomous systems and/or disparate domains.
It should be appreciated that there is a need for methods and apparatus that can aggregate and distribute a user's presence information across multiple autonomous federated and non-federated systems and/or domains.
It should be further appreciated that there is a need for methods and apparatus that can request a user's contacts for multiple autonomous systems and/or disparate domains, generate an aggregated contact list corresponding to the user, and distributing the aggregated contact list to one or more devices of the user therein allowing for the synchronization of a user's contact list over multiple autonomous systems and/or disparate domains.